#ifndef STACK_TRACE_H
#define STACK_TRACE_H


#  ifndef STACK_TRACE_SYMBUFSIZ
#    define STACK_TRACE_SYMBUFSIZ 4096
#  endif

typedef unsigned int ssize_t;

class  ACE_Stack_Trace
{
public:

  explicit ACE_Stack_Trace (ssize_t starting_frame_offset = 0, size_t num_frames = 0);

  const char* c_str() const;

  static const size_t SYMBUFSIZ = STACK_TRACE_SYMBUFSIZ;

private:
  char buf_[SYMBUFSIZ];
  size_t buflen_;

  static const char UNSUPPORTED[];
  static const char UNABLE_TO_GET_TRACE[];

  void generate_trace (ssize_t starting_frame_offset, size_t num_frames);
};

#endif /* ACE_STACK_TRACE_H */

